آموزش ساخت بازی سه بعدی به زبان Basic با دارک بیسیک Dark Basic
تهیه و آموزش نرم افزار دارک بیسیک
 
 
شنبه 30 فروردين 1392برچسب:, :: 23:59 ::  نويسنده : ابوالفضل
دستور SYNC
این دستور باعث بهبود روند اجرای بازی خواهد شد . یعنی می تواند محتویات صحنه را تحت زمان های مشخص شده ای ، از نو ترسیم و محاسبه کند . ابتدا با استفاده از دستور Sync On دستور را فعال و با دستور Sync Rate سرعت فریم ها را در هر ثانیه تنظیم و با دستور Sync محاسبات را انجام می دهیم . مانند مثال زیر :
 
SYNC ON
SYNC RATE 30
DO
"PRINT "keep to approximately 30 frames per second
SYNC
LOOP
Sync Off
 
در این مثال ، ابتدا دستور در خط اول فعال شد . و در خط دوم سرعت 30 فریم در ثانیه را تنظیم کردیم و در حلقه ی Do … Loop سرعت ترسیم و محاسبات ، هر ثانیه 30 بار توسط دستور Sync به روز رسانی می شوند .
 
در واقع این دستور یکی از مهم ترین دستورات DarkBasic می باشد . چون اگر دقت کرده باشید ، هر سیستمی سرعت خاص خود را دارد . مثلا کامپیوتری با CPU پنتیوم 3000 و یا AMD 4000 و یا هر سیستم دیگری قدرت و سرعت خود را دارد . یعنی بازی نوشته شده ، در هر کامپیوتری با یک سرعت خاص اجرا خواهد شد . یعنی در یک کامپیوتر ضعیف بازی ما ضعیف و کند حرکت و اجرا می شود و در کامپیوتر قوی تر ، خیلی تیز و سریع اجراء خواهد شد . با استفاده از دستور Sync ، بازی در تمامی کامپیوتر ها با یک سرعت ثابت اجرا خواهد شد . یعنی اگر ما Sync Rate را بر روی 30 تنظیم کرده باشیم . دستورات بین حلقه ی Do و Loop در هر ثانیه تنها 30 بار اجرا خواهند شد .
 
دستور IF
این دستور با استفاده از عملگرها ( + و – و And و Or و > و ... که قبلا راجع به آنها گفتیم ) به بررسی و مقایسه ی مقادیر اعداد و متغیرها و روابط بین آنها در برنامه می پردازد ، تا مسیر اجرای برنامه را تحت کنترل ما در بیاورد . یعنی در برابر شرایط ایجاد شده تصمیم بگیرد و در پی آن اقدامی انجام دهد  . در واقع این دستور جزء دستورات شرطی برنامه ی DarkBasic است که بصورت های مختلفی می توان از آن استفاده کرد . از جمله دستورالعمل زیر :
 
If Condition Then Statement
 
طبق این دستورالعمل ابتدا دستور کلیدی If را تایپ می کنیم و به جای Condition شرط مورد نظرمان را قرار می دهیم . سپس بعد از تایپ کلمه ی کلیدی Then به جای Statement فرمان مورد نیازمان را قرار می دهیم . یعنی اگر شرط Condition درست و منطقی بود ، فرمان Statement اجرا شود . همانند مثال زیر :
 
A = 20
"If A > 10 Then Print "A Is > 10
Wait Key
 
با اجرای این مثال ، ابتدا عدد 20 در متغیر A ذخیره می شود و در خط دوم دستور If عبارت A > 10 را بررسی می کند . اگر درست و منطقی بود ، فرمان نوشته شده بعد از Then انجام می شود . یعنی عبارت A Is > 10 چاپ خواهد شد . اگر متغیر A از 10 کوچکتر باشد دستور نوشته شده بعد از Then اجرا نخواهد شد و DarkBasic آن را رها خواهد کرد و به اجرای خطوط بعدی برنامه خواهد پرداخت .
 
در مثال بالا بعد از کلمه ی کلیدی Then تنها یک دستور تایپ و اجرا شد . در برخی مواقع نیاز داریم چندین خط بعد از بررسی اجرا شود . در این صورت مانند دستورالعمل زیر عمل می کنیم :
 
If Condition
Statement
EndIf
 
طبق این دستورالعمل ، بعد از دستور If به جای Condition شروط مورد نظرمان را تایپ می کنید و در خط بعد به جای Statement فرمان های مورد نظرمان را قرار می دهیم . عبارت EndIf جزئی از دستور If بحساب می آید که پایان شرط را مشخص می کند . یعنی ما می توانیم هر تعداد دستوری را که نیاز داشتیم ، بین If Condition و EndIf قرار دهیم . مانند مثال زیر :
 
$Input Character
"If Character$ = "a
 " ---------- " Print
$Print "Character Is ";Character
"Print "Thank You
EndIf
Wait Key
 
در این مثال بین خط دوم و ششم سه خط دستور قرار دادیم که می توان آن را کم و زیاد کرد . تا الان با استفاده از دستور If به بررسی درستی عبارات پرداختیم تا در قبال آن فرامینی را اجرا کنیم . دستور If را می توان به صورتی استفاده کرد که پس از بررسی عبارات به درستی و نادرستی عبارات بپردازد تا در قبال هر کدام فرامینی مربوط به هر حالت را بطور جداگانه ، اجرا کند . مانند دستورالعمل زیر :
 
If Condition
Statement1
Else
Statement2
EndIf
 
طبق این دستورالعمل شرط Condition بررسی می شود . اگر درست و منطقی بود ، دستور Statement1 انجام می شود ، و اگر ( شرط Condition ) نادرست و غیرمنطقی بود ، دستور  Statement2 انجام می شود . مانند مثال زیر :
 
Input "Input Number ?" ; Number
If Number = 1
"Print "True
Else
"Print "False
EndIf
Wait Key
 
با اجرای این مثال ، یک عدد از کاربر گرفته شده و داخل متغیر Number ذخیره می شود . سپس دستور If مقدار آن متغیر را بررسی می کند . اگر مقدار متغیر Number برابر 1 بود ، عبارت True و اگر هر مقدار دیگری به غیر از 1 باشد ، عبارت False چاپ خواهد شد . یعنی اگر شرط نوشته شده روبروی دستور If یعنی Number = 1 درست باشد ، دستورات نوشته شده بین دستور If و Else اجرا می شود و در غیر اینصورت دستورات نوشته شده بین Else و EndIf اجرا خواهند شد .
 
دستور If می تواند چندین عبارت را ( با هم در یک خط ) بررسی کند . مانند مثال زیر :
 
Number = 100
"strName$ = "Sam
Age = 20
If Number=100 And strName$<>"Jone" Or Age>=10
"Print "Ok
EndIf
Wait Kay
 
دستور SELECT
در دستور If تنها دو حالت قابل بررسی بود ( یکی حالت درست و دیگری حالت نادرست ) . اما در دستور Select حالت های زیادی قابل بررسی و پیش بینی هستند . برای استفاده از دستور Select طبق دستورالعمل زیر عمل می کنیم :
 
Select Expression
Case Value
Statement
EndCase
EndSelect
 
طبق این دستورالعمل عبارت Expression مورد بررسی قرار می گیرد . اگر عبارت Expression دقیقا برابر Value بود . دستور Statement انجام می شود . مانند مثال زیر :
 
Number = 2
Select Number
Case 2
"Print "Two
EndCase
EndSelect
Wait Key
 
در این مثال مقدار داخل متغیر Number که روبروی دستور Select تایپ شده ، بررسی می شود ، اگر مقدار داخل آن برابر 2 باشد ، دستورات نوشته شده بین Case 2 و EndCase همگی اجرا خواهند شد . یعنی در این مثال عبارت Two چاپ می شود .  ما می توانیم موارد زیادی را نیز بررسی کنیم . مانند مثال زیر :
 
numDay = 4
Select numDay
Case 0
"Print "Sat
EndCase
Case 1
"Print "Sun
EndCase
Case 2
"Print "Mon
EndCase
Case 3
"Print "Tue
EndCase
Case 4
"Print "Wed
EndCase
Case 5
"Print "Tur
EndCase
Case 6
"Print "Fri
EndCase
EndSelect
Wait Key
 
در این مثال پیش بینی شده ، که اگر متغیر numDay عددی در محدوده ی 0 تا 6 باشد ، نام آن روز طبق شماره اش چاپ شود . در این مثال چون مقدار داخل متغیر numDay برابر 4 است ، دستورات تایپ شده بین Case 4 و EndCase ( دو خط بعدی اش ) اجرا خواهد شد . یعنی عبارت Wed چاپ می شود . ولی اگر متغیر numDay مقداری خارج از محدوده ی 0 تا 6 در خود داشته باشد ، و ما بخواهیم آن حالت خاص را هم مورد بررسی قرار دهیم ، باید گزینه ی Case Default را به دستورمان اضافه کنیم . مانند مثال زیر :
 
$Input Character
$Select Character
 
   "Case "A
      Print 1
   EndCase
   "Case "B
      Print 2
   EndCase
   Case Default
      "Print "Input 1 Or 2
   EndCase
EndSelect
Wait Key
 
با اجرای این مثال یک عبارت از کاربر دریافت و داخل متغیر $Character ذخیره می شود . اگر مقدار آن برابر عبارت A باشد ، عدد 1 و اگر مقدار آن برابر عبارت B باشد ، عدد 2 چاپ می شود . درغیر اینصورت هر عبارت دیگری وارد متغیر $Character شود ، عبارت Input 1 Or 2 چاپ خواهد شد .
 
دستور WAIT
این دستور اجرای برنامه را به اندازه ی عددی که به آن اختصاص می دهیم ، به تاخیر می اندازد . مانند دستورالعمل زیر :
 
Wait Delay
 
طبق این دستورالعمل دستور Wait اجرای برنامه را به مقدار Delay میلی ثانیه به تاخیر می اندازد . Delay یک عدد از نوع Integer است که اگر مقدار آن را 1 بدهیم یک هزارم ثانیه و اگر 1000 قرار دهیم برنامه را بمدت یک ثانیه نگه می دارد . سپس دستورات بعدی اجرا می شوند . مانند مثال زیر :
 
"Print "Wait For 5 Seconds
Wait 5000
 
End
 
دستور SLEEP
این دستور دقیقا مانند دستور گذشته عمل می کند و به مقدار عدد اختصاصی به آن برنامه را متوقف می کند . مانند مثال زیر :
 
".Print "Please Wait Five Second
Sleep 5000
 
دستور WAIT KEY
این دستور برنامه را آن قدر نگه می دارد تا کلیدی از کیبورد فشرده شود . مانند مثال زیر :
 
"PRINT "press any key to end
WAIT KEY
END
 
با اجرای این مثال ابتدا عبارت press any key to end چاپ شده ، سپس برنامه توسط دستور WAIT KEY در خط دوم نگه داشته می شود . در این هنگام با زدن یکی از دکمه های کیبورد اجرای برنامه ادامه پیدا می کند و با اجرای دستور END برنامه به پایان می رسد .
 
دستور SUSPEND FOR KEY
این دستور دقیقا همان دستور WAIT KEY را انجام می دهد و برنامه را تا زمان فشرده شدن یک کلید از کیبورد متوقف می کند . مانند مثال زیر :
 
"PRINT "press any key to end
SUSPEND FOR KEY
 
END
 
دستور WAIT MOUSE
این دستور مانند دستور قبلی ( Wait Key ) اجرای برنامه را متوقف می کند . منتهی تا زمانی که یکی از دکمه های موس زده شود ! مانند مثال زیر :
 
"PRINT "press any mouse button
WAIT MOUSE
 
 
دستور SUSPEND FOR MOUSE
این دستور مانند دستور قبلی ( Wait Mouse ) اجرای برنامه را تا زمان فشرده شدن یکی از دکمه های موس متوقف می کند . مانند مثال زیر :
 
"PRINT "click mouse to end
SUSPEND FOR MOUSE
END
 
دستور INC
این دستور مقدار مشخصی عدد را به یک متغیر از نوع عدد اضافه می کند . مانند دستورالعمل زیر :
 
Inc Variable,Value
 
طبق این دستورالعمل ، هر بار به مقدار Value به متغیر Variable اضافه می شود . مانند مثال زیر :
 
A# = -2
Do
Inc A#,0.5
#Print A
wait 500
Loop
 
دستور DEC
این دستور شباهت زیادی به دستور قبلی ( Inc ) دارد . با این تفاوت که به جای افزایش به مقدار متغیر ، مقداری را هر بار از آن کم می کند . مانند مثال زیر :
 
myNumber = 10
Do
Dec myNumber,1
Print myNumber
wait 500
Loop
 
زمان استفاده از دستور Inc و Dec اگر بخواهیم تنها یک واحد از متغیرها زیاد یا کم شود ، میتوانیم تنها از نام Inc و Dec و نام متغیر بعد از آن استفاده کنیم . مانند مثال زیر :
 
A = 10
B = 10
Inc A
Dec B
Print "A = ";A;" B = ";B
Wait Key
 
دستور DATA
با این دستور می توان مقادیری داده ( شامل عدد یا کاراکتر ) را بطور متوالی در خطوط برنامه یادداشت کنیم ، تا بعد ها از آن داده ها استفاده کنیم . مانند مثال زیر :
 
DATA 17,"NINE",9.0
DATA 0,"Yes",300
DATA -100,"I Am A Boy",200.05
 
دستور READ
در دستور گذشته مقادیری را در خطوط برنامه یادداشت کردیم . با استفاده از این دستور ، می توانیم آن مقادیر را ، با استفاده از متغیر ها ، استفاده کنیم . مانند مثال زیر :
 
DATA 17,"NINE",9.0
DATA 0,"Yes",300
DATA -100,"I Am A Boy",200.05
#Read a,s$,b
Print a
$Print s
#Print b
Wait Key
 
با اجرای این مثال عدد 17 و عبارت NINE و عدد 9.0 چاپ می شوند . با توجه به مثال برای فراخوانی داده ها از متغیری همنوع همان داده استفاده کردیم . برای خواندن داده های خوط بعدی باید دستور Read را تکرار کنیم مانند مثال زیر :
 
DATA 17,"NINE",9.0
DATA 0,"Yes",300
DATA -100,"I Am A Boy",200.05
 
#Read a,s$,b
#Print a;s$;b
#Read a,s$,b
#Print a;s$;b
#Read a,s$,b
#Print a;s$;b
Wait Key
 
دستور RESTORE
می توانیم با ایجاد برچسب ، داده ها را نامگذاری و بعد با دستور Restore از قسمت فراخوانی نام برچسب ، از داده ها دوباره استفاده کنیم . مانند مثال زیر :
 
:Lotterydata
DATA 12,23,34,45,56,67
DATA 23,34,45,56,67,11
DATA 34,45,56,67,33,22
:Ticketdata
DATA 01,02,03,04,05,06
DATA 21,32,43,24,13,22
 
RESTORE lotterydata
READ a,b,c,d,e,f
PRINT "LOTTERY ",a,b,c,d,e,f

RESTORE ticketdata
READ a,b,c,d,e,f
PRINT "TICKET ",a,b,c,d,e,f
Wait Key


صفحه قبل 1 صفحه بعد

درباره وبلاگ


به وبلاگ من خوش آمدید
آخرین مطالب
پيوندها

تبادل لینک هوشمند
برای تبادل لینک  ابتدا ما را با عنوان آموزش ساخت بازی 3D ( سه بعدی ) به زبان Basic با دارک بیسیک D و آدرس darkbasic.LXB.ir لینک نمایید سپس مشخصات لینک خود را در زیر نوشته . در صورت وجود لینک ما در سایت شما لینکتان به طور خودکار در سایت ما قرار میگیرد.





نويسندگان


آمار وب سایت:  

بازدید امروز : 2
بازدید دیروز : 0
بازدید هفته : 2
بازدید ماه : 244
بازدید کل : 99614
تعداد مطالب : 24
تعداد نظرات : 3
تعداد آنلاین : 1